package ru.ifmo.ctd.intsys.afanasyeva.neural;

/**
 * Interface for neural network.
 * 
 * @author Arina Afanasyeva
 * @see MyNeuralNetwork
 */
public interface NeuralNetwork {
	/**
	 * Trains this network with the specified examples
	 * @param inputs example input values
	 * @param answers ideal output values corresponding to the <code>inputs</code>
	 */
	public void train(double[][] inputs, double[][] answers);	
	
	/**
	 * Calculates output values corresponding to the specified input values
	 * @param input the specified input values
	 * @return output values corresponding to the <code>inputs</code>
	 */
	public double[] getOutput(double[] input);
	
	/**
	 * Resets all the weights, so the network can be trained from scratch
	 */
	public void reset();
}
